[INFO] cloning repository https://github.com/djmill0326/hapt-vm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/djmill0326/hapt-vm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2Fhapt-vm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2Fhapt-vm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8507cea2227ad7819a4903b6b602b7da31b80091
[INFO] fixing djmill0326/hapt-vm against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2Fhapt-vm" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/djmill0326/hapt-vm
[INFO] finished tweaking git repo https://github.com/djmill0326/hapt-vm
[INFO] tweaked toml for git repo https://github.com/djmill0326/hapt-vm written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/djmill0326/hapt-vm on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/djmill0326/hapt-vm already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd
[INFO] running `Command { std: "docker" "start" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]     Checking hapt-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/file.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |             _ => Interrupt::interrupt(self, code, data)
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/file.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |             FileOptions::Info => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 104 |             FileOptions::Read => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 109 |             FileOptions::Write => {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |             FileOptions::Flush => {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 119 |             _ => Interrupt::interrupt(self, code, data)
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaptVM` is never constructed
[INFO] [stdout]  --> src/vm.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct HaptVM {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]  --> src/device.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Device<'a>: Clone + Sized {
[INFO] [stdout]   |           ------ method in this trait
[INFO] [stdout] 6 |     fn get(&self) -> impl Device;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interrupt` is never used
[INFO] [stdout]   --> src/device.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Interrupt {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Named` is never used
[INFO] [stdout]   --> src/device.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Named<'a> {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]  --> src/file.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Handle<'a>(pub usize, pub &'a PhantomPinned);
[INFO] [stdout]   |            ------     ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing these fields
[INFO] [stdout]   = note: `Handle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from` and `from_str` are never used
[INFO] [stdout]   --> src/file.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<'a> Handle<'a> {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn from(x: usize) -> Option<&'a Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from_str(x: impl Into<String>) -> Option<&'a Self> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_implemented` is never used
[INFO] [stdout]   --> src/file.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn not_implemented<'a>() -> &'a Handle<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileOptions` is never used
[INFO] [stdout]   --> src/file.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum FileOptions {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `interrupt`, `io`, `read`, `write`, and `flush` are never used
[INFO] [stdout]    --> src/file.rs:98:8
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait FileIO: Interrupt + Info {
[INFO] [stdout]     |           ------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_handle` is never used
[INFO] [stdout]   --> src/global.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn pop_handle<'a>(index: usize) -> Option<Handle<'a>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle` is never used
[INFO] [stdout]   --> src/global.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn handle<'a>(index: usize) -> Option<Handle<'a>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/js/event_loop.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Worker(usize);
[INFO] [stdout]   |        ------ ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Worker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/device.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn get(&self) -> impl Device;
[INFO] [stdout]   |            ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |            |
[INFO] [stdout]   |            the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn get(&self) -> impl Device<'_>;
[INFO] [stdout]   |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/device.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn handle(&self) -> Handle;
[INFO] [stdout]   |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |               |
[INFO] [stdout]   |               the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn handle(&self) -> Handle<'_>;
[INFO] [stdout]   |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn info<'a>(&self) -> Cow<str>;
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn info<'a>(&self) -> Cow<'_, str>;
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get(&self) -> impl Device {
[INFO] [stdout]    |            ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |            |
[INFO] [stdout]    |            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get(&self) -> impl Device<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn handle(&self) -> Handle {
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn handle(&self) -> Handle<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn file(&self) -> &File;
[INFO] [stdout]    |             ^^^^^     ^^^^^
[INFO] [stdout]    |             |         ||
[INFO] [stdout]    |             |         |the same lifetime is hidden here
[INFO] [stdout]    |             |         the same lifetime is elided here
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn file(&self) -> &File<'_>;
[INFO] [stdout]    |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |           ^^^^^                                                       ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |           |                                                           |
[INFO] [stdout]     |           the lifetime is elided here                                 the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                                             ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |             ^^^^^                          ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |                              |
[INFO] [stdout]     |             |                              the same lifetime is hidden here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                  ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |              ^^^^^                          ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |                              |
[INFO] [stdout]     |              |                              the same lifetime is hidden here
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                   ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle, Handle> {
[INFO] [stdout]     |              ^^^^^            ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |                |
[INFO] [stdout]     |              |                the same lifetime is hidden here
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                     ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn file(&self) -> &File {
[INFO] [stdout]     |             ^^^^^     ^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn file(&self) -> &File<'_> {
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn file(&self) -> &File {
[INFO] [stdout]     |             ^^^^^     ^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn file(&self) -> &File<'_> {
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/global.rs:12:59
[INFO] [stdout]    |
[INFO] [stdout] 12 |             let handle: *mut Handle = std::mem::transmute(FILE_HANDLES.get_unchecked_mut(HANDLE_INDEX));
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |             Some(FILE_HANDLES.get_unchecked(HANDLE_INDEX - 1))
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let handle = FILE_HANDLES.get_unchecked(index);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/global.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let handle_to_overwrite = FILE_HANDLES.get_unchecked_mut(range.start);
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 *handle_to_overwrite = *FILE_HANDLES.get_unchecked(range.start + 1);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 |     unsafe { FILE_HANDLES.get(index).copied() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/js/event_loop.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { &mut ARBITRATOR }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { &raw mut ARBITRATOR }
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/file.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |             _ => Interrupt::interrupt(self, code, data)
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/file.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |             FileOptions::Info => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 104 |             FileOptions::Read => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 109 |             FileOptions::Write => {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |             FileOptions::Flush => {
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 119 |             _ => Interrupt::interrupt(self, code, data)
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HaptVM` is never constructed
[INFO] [stdout]  --> src/vm.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct HaptVM {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]  --> src/device.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Device<'a>: Clone + Sized {
[INFO] [stdout]   |           ------ method in this trait
[INFO] [stdout] 6 |     fn get(&self) -> impl Device;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interrupt` is never used
[INFO] [stdout]   --> src/device.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Interrupt {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Named` is never used
[INFO] [stdout]   --> src/device.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Named<'a> {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]  --> src/file.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Handle<'a>(pub usize, pub &'a PhantomPinned);
[INFO] [stdout]   |            ------     ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing these fields
[INFO] [stdout]   = note: `Handle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from` and `from_str` are never used
[INFO] [stdout]   --> src/file.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<'a> Handle<'a> {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn from(x: usize) -> Option<&'a Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from_str(x: impl Into<String>) -> Option<&'a Self> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_implemented` is never used
[INFO] [stdout]   --> src/file.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn not_implemented<'a>() -> &'a Handle<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileOptions` is never used
[INFO] [stdout]   --> src/file.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub enum FileOptions {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `interrupt`, `io`, `read`, `write`, and `flush` are never used
[INFO] [stdout]    --> src/file.rs:98:8
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait FileIO: Interrupt + Info {
[INFO] [stdout]     |           ------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle, Handle> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_handle` is never used
[INFO] [stdout]   --> src/global.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn pop_handle<'a>(index: usize) -> Option<Handle<'a>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle` is never used
[INFO] [stdout]   --> src/global.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn handle<'a>(index: usize) -> Option<Handle<'a>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/js/event_loop.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Worker(usize);
[INFO] [stdout]   |        ------ ^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Worker` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/device.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn get(&self) -> impl Device;
[INFO] [stdout]   |            ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |            |
[INFO] [stdout]   |            the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn get(&self) -> impl Device<'_>;
[INFO] [stdout]   |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/device.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn handle(&self) -> Handle;
[INFO] [stdout]   |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |               |
[INFO] [stdout]   |               the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn handle(&self) -> Handle<'_>;
[INFO] [stdout]   |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/device.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn info<'a>(&self) -> Cow<str>;
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn info<'a>(&self) -> Cow<'_, str>;
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get(&self) -> impl Device {
[INFO] [stdout]    |            ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |            |
[INFO] [stdout]    |            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get(&self) -> impl Device<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn handle(&self) -> Handle {
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn handle(&self) -> Handle<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn info(&self) -> Cow<str> {
[INFO] [stdout]    |             ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn info(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn file(&self) -> &File;
[INFO] [stdout]    |             ^^^^^     ^^^^^
[INFO] [stdout]    |             |         ||
[INFO] [stdout]    |             |         |the same lifetime is hidden here
[INFO] [stdout]    |             |         the same lifetime is elided here
[INFO] [stdout]    |             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn file(&self) -> &File<'_>;
[INFO] [stdout]    |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/file.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]    |                  ^^^^^                                               ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |                                                   |
[INFO] [stdout]    |                  the lifetime is elided here                         the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn interrupt(&self, code: usize, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]    |                                                                            ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle, Handle> {
[INFO] [stdout]     |           ^^^^^                                                       ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |           |                                                           |
[INFO] [stdout]     |           the lifetime is elided here                                 the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn io(&self, option: FileOptions, data: Option<Handle>) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                                             ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |             ^^^^^                          ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |                              |
[INFO] [stdout]     |             |                              the same lifetime is hidden here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn read(&self, data: Handle) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                  ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle, Handle> {
[INFO] [stdout]     |              ^^^^^                          ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |                              |
[INFO] [stdout]     |              |                              the same lifetime is hidden here
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn write(&self, data: Handle) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                                   ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle, Handle> {
[INFO] [stdout]     |              ^^^^^            ^^^^^^  ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |                |
[INFO] [stdout]     |              |                the same lifetime is hidden here
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn flush(&self) -> Result<Handle<'_>, Handle<'_>> {
[INFO] [stdout]     |                                     ++++        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn file(&self) -> &File {
[INFO] [stdout]     |             ^^^^^     ^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn file(&self) -> &File<'_> {
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/file.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn file(&self) -> &File {
[INFO] [stdout]     |             ^^^^^     ^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn file(&self) -> &File<'_> {
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/global.rs:12:59
[INFO] [stdout]    |
[INFO] [stdout] 12 |             let handle: *mut Handle = std::mem::transmute(FILE_HANDLES.get_unchecked_mut(HANDLE_INDEX));
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |             Some(FILE_HANDLES.get_unchecked(HANDLE_INDEX - 1))
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let handle = FILE_HANDLES.get_unchecked(index);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/global.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let handle_to_overwrite = FILE_HANDLES.get_unchecked_mut(range.start);
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 *handle_to_overwrite = *FILE_HANDLES.get_unchecked(range.start + 1);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/global.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 |     unsafe { FILE_HANDLES.get(index).copied() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/js/event_loop.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { &mut ARBITRATOR }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { &raw mut ARBITRATOR }
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr] crater-edition-check: all finished
[INFO] running `Command { std: "docker" "inspect" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd", kill_on_drop: false }`
[INFO] [stdout] f2fad865e8eb3932ea70cd6427473209ea5e90e1ec427b6a3690f3362d294dcd
